package com.zutassociation.system.service;

import com.zutassociation.system.domain.Reply;

import java.util.List;

/**
 * 评论  服务层
 * @author 黄玉东
 * @version 1.0
 * @date 2021/5/10 11:10
 */
public interface ReplyService {

    /**
     * 查询评论信息
     *
     * @param replyId 评论ID
     * @return 评论信息
     */
    public Reply selectReplyById(Long replyId);

    /**
     *查询上一条评论信息
     *
     * @param lastId 评论ID
     * @return 评论信息
     */
    public Reply selectReplyByLastId(Long lastId);

    /**
     * 查询发送人评论信息
     *
     * @param fromId 发送人ID
     * @return 评论信息
     */
    public Reply selectReplyFromId(Long fromId);

    /**
     * 查询发送目标人评论信息
     *
     * @param toId 目标人ID
     * @return 评论信息
     */
    public Reply selectReplyToId(Long toId);

    /**
     * 查询评论论坛信息
     *
     * @param forumId 论坛ID
     * @return 评论信息
     */
    public Reply selectReplyForumId(Long forumId);

    /**
     * 查询评论动态信息
     *
     * @param trendsId 动态ID
     * @return 评论信息
     */
    public Reply selectReplyTrendsId(Long trendsId);

    /**
     * 查询评论列表
     *
     * @param reply 评论信息
     * @return 评论集合
     */
    public List<Reply> selectReplyList(Reply reply);

    /**
     * 新增评论
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int insertReply(Reply reply);

    /**
     * 修改评论
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int updateReply(Reply reply);

    /**
     * 修改评论举报状态
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int updateReplyReport(Reply reply);

    /**
     * 修改评论可用状态
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int updateReplyStatus(Reply reply);

    /**
     * 浏览量+1
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int updateReplyClick(Reply reply);

    /**
     * 点赞量+1
     *
     * @param reply 评论信息
     * @return 结果
     */
    public int updateReplyFabulous(Reply reply);

    /**
     * 批量删除评论
     *
     * @param replyId 评论ID
     * @return 结果
     */
    public int deleteReplyById(Long replyId);

    /**
     * 批量删除评论信息
     *
     * @param replyIds 需要删除的评论ID
     * @return 结果
     */
    public int deleteReplyByIds(Long[] replyIds);

    /**
     * 批量修改评论举报状态为 1 成功
     *
     * @param replyIds 需要阅读的评论ID
     * @return 结果
     */
    public int deleteReplyByReport1(Long[] replyIds);

    /**
     * 批量修改评论举报状态为 2 不成功
     *
     * @param replyIds 需要阅读的评论ID
     * @return 结果
     */
    public int deleteReplyByReport2(Long[] replyIds);
}
